package com.xdb.sqlparser.dialect.oracle.ast.clause;

import java.util.ArrayList;
import java.util.List;

import com.xdb.sqlparser.ast.SQLExpr;
import com.xdb.sqlparser.ast.SQLName;
import com.xdb.sqlparser.dialect.oracle.ast.OracleSQLObjectImpl;
import com.xdb.sqlparser.dialect.oracle.visitor.OracleASTVisitor;

public class OracleLobStorageClause extends OracleSQLObjectImpl {

	private final List<SQLName> items = new ArrayList<SQLName>();

	private boolean secureFile = false;
	private boolean basicFile = false;

	private SQLName tableSpace;

	private Boolean enable;

	private SQLExpr chunk;

	private Boolean cache;
	private Boolean logging;

	private Boolean compress;
	private Boolean keepDuplicate;

	@Override
	public void accept0(OracleASTVisitor visitor) {
		if (visitor.visit(this)) {
			acceptChild(visitor, items);
			acceptChild(visitor, tableSpace);
		}
		visitor.endVisit(this);
	}

	public Boolean getEnable() {
		return enable;
	}

	public void setEnable(Boolean enable) {
		this.enable = enable;
	}

	public SQLExpr getChunk() {
		return chunk;
	}

	public void setChunk(SQLExpr chunk) {
		this.chunk = chunk;
	}

	public List<SQLName> getItems() {
		return items;
	}

	public boolean isSecureFile() {
		return secureFile;
	}

	public void setSecureFile(boolean secureFile) {
		this.secureFile = secureFile;
	}

	public boolean isBasicFile() {
		return basicFile;
	}

	public void setBasicFile(boolean basicFile) {
		this.basicFile = basicFile;
	}

	public SQLName getTableSpace() {
		return tableSpace;
	}

	public void setTableSpace(SQLName tableSpace) {
		this.tableSpace = tableSpace;
	}

	public Boolean getCache() {
		return cache;
	}

	public void setCache(Boolean cache) {
		this.cache = cache;
	}

	public Boolean getLogging() {
		return logging;
	}

	public void setLogging(Boolean logging) {
		this.logging = logging;
	}

	public Boolean getCompress() {
		return compress;
	}

	public void setCompress(Boolean compress) {
		this.compress = compress;
	}

	public Boolean getKeepDuplicate() {
		return keepDuplicate;
	}

	public void setKeepDuplicate(Boolean keepDuplicate) {
		this.keepDuplicate = keepDuplicate;
	}

}
